﻿/**********************************************************************
 * @file   FITKRadiossAdaptorSurfacePart.h
 * @brief  Part面集合 (/SURF/PART及其衍生) 读写适配器声明
 * @author  wangning
 * @date   2025-09-25
 * @details
 *********************************************************************/
#ifndef _FITKRADIOSS_ADAPTOR_SURFACE_PART_H__
#define _FITKRADIOSS_ADAPTOR_SURFACE_PART_H__

#include "FITKRadiossRadIOAPI.h"
#include "FITKRadiossAbstractAdaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"


namespace Radioss
{
    class FITKRadiossSurfaceSeg;
    /**
     * @class  FITKRadiossAdaptorSurfaceSeg
     * @brief  Part面集合适配器
     * @author  wangning
     * @date   2025-09-25
     */
    class FITKRadiossRadIOAPI FITKRadiossAdaptorSurfacePart : public FITKRadiossAbstractAdaptor
    {
    public:
        /** @brief 默认构造 (无额外初始化) */
        explicit FITKRadiossAdaptorSurfacePart() = default;
        /** @brief 默认析构 (无资源需释放) */
        virtual ~FITKRadiossAdaptorSurfacePart() = default;

        QString getAdaptorClass() override;

        bool adaptR() override;

    private:
        /**
         * @brief  写入对应shell Part的面
         */
        void setShellPartToSurface(int radID, Radioss::FITKRadiossSurfaceSeg * surfaceSeg);

    };

    //Register2FITKIOAdaptorFactory(rad, Radioss::FITKRadiossSurfacePart, FITKRadiossAdaptorSurfacePart);
    /**
     * @brief  注册 Radioss 关键字与适配器映射 (/SURF/SEG)
     */
    RegRadiossRadAdaptor(/SURF/PART, FITKRadiossAdaptorSurfacePart);
}


#endif ///< _FITKRADIOSS_ADAPTOR_NODE_GROUP_H__